package bank;

import java.util.Date;

public class Ueberweisung {

	/**
	 * @uml.property name="vonKonto"
	 * @uml.associationEnd multiplicity="(1 1)"
	 *                     inverse="ueberweisung:bank.Konto"
	 */
	private Konto vonKonto;

	/**
	 * @uml.property name="nachKonto"
	 * @uml.associationEnd multiplicity="(1 1)"
	 *                     inverse="ueberweisung:bank.Konto"
	 */
	private Konto nachKonto;
	/**
	 * @uml.property name="betrag"
	 */
	private double betrag;
	/**
	 * @uml.property name="datum"
	 */
	private Date datum;

	/**
			 */
	public Ueberweisung() {
	}

	/**
				 */
	public Ueberweisung(Konto vonKonto, Konto nachKonto, double betrag,
			Date datum) {
		this.vonKonto = vonKonto;
		this.nachKonto = nachKonto;
		this.betrag = betrag;
		this.datum = datum;
	}

	public Ueberweisung(int id, Konto vonKonto, Konto nachKonto,
			double betrag, Date datum) {
		this(vonKonto, nachKonto, betrag, datum);
	}
	/**
	 * Getter of the property <tt>vonKonto</tt>
	 * 
	 * @return Returns the vonKonto.
	 * @uml.property name="vonKonto"
	 */
	public Konto getVonKonto() {
		return vonKonto;
	}

	/**
	 * Setter of the property <tt>vonKonto</tt>
	 * 
	 * @param vonKonto
	 *            The vonKonto to set.
	 * @uml.property name="vonKonto"
	 */
	public void setVonKonto(Konto vonKonto) {
		this.vonKonto = vonKonto;
	}

	/**
	 * Getter of the property <tt>nachKonto</tt>
	 * 
	 * @return Returns the nachKonto.
	 * @uml.property name="nachKonto"
	 */
	public Konto getNachKonto() {
		return nachKonto;
	}

	/**
	 * Setter of the property <tt>nachKonto</tt>
	 * 
	 * @param nachKonto
	 *            The nachKonto to set.
	 * @uml.property name="nachKonto"
	 */
	public void setNachKonto(Konto nachKonto) {
		this.nachKonto = nachKonto;
	}

	
	/**
	 * Getter of the property <tt>betrag</tt>
	 * 
	 * @return Returns the betrag.
	 * @uml.property name="betrag"
	 */
	public double getBetrag() {
		return betrag;
	}

	/**
	 * Setter of the property <tt>betrag</tt>
	 * 
	 * @param betrag
	 *            The betrag to set.
	 * @uml.property name="betrag"
	 */
	public void setBetrag(double betrag) {
		this.betrag = betrag;
	}

	

	/**
	 * Getter of the property <tt>datum</tt>
	 * 
	 * @return Returns the datum.
	 * @uml.property name="datum"
	 */
	public Date getDatum() {
		return datum;
	}

	/**
	 * Setter of the property <tt>datum</tt>
	 * 
	 * @param datum
	 *            The datum to set.
	 * @uml.property name="datum"
	 */
	public void setDatum(Date datum) {
		this.datum = datum;
	}

	/**
	 * @throws Exception 
		 */
	public void durchfuehrenUeberweisung() throws Exception {
		vonKonto.auszahlen(betrag);
		nachKonto.einzahlen(betrag);
	}


}
